package com.kmxd.ams.client.system.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import java.io.Serializable;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 角色表
 *
 * @author admin
 * @since 2021-06-10
 */
@Data
public class SysRoleEditDTO implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键 */
  @NotNull(message = "主键不能为空")
  private Long id;

  /** 公司ID */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long comId;

  /** 角色编码 */
  @NotBlank(message = "角色编码不能为空")
  @Size(max = 100, message = "字典编码长度不能超过100个字符")
  private String roleCode;

  /** 角色名称 */
  @NotBlank(message = "角色名称不能为空")
  @Size(max = 100, message = "字典编码长度不能超过100个字符")
  private String roleName;

  /** 角色类型 个人级，部门级，公司级 */
  private Integer roleType;

  /** 数据范围 1全部数据权限；2自定义数据权限；3本部门数据权限；4本部门及以下数据权限 */
  private String dataScope;

  /** 是否是敏感角色 1敏感角色0非敏感角色 */
  private Integer roleSensitive;

  /** 备注 */
  @Size(max = 500, message = "备注长度不能超过500个字符")
  private String remarks;

  /** 排序 */
  private Integer sort;

  /** 状态 0正常；1停用 */
  private String status;

  /** 部门ID列表 */
  private List<Long> deptIds;
}
